{
 "metadata": {
  "signature": "sha256:b3e89c5bd13c7c000c20e52e8273658b8af8faf447363564e40632bad9cd1ffe"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Histograms\n",
      "======================================================================\n",
      "\n",
      "Here is an example for creating a 2D histogram with variable bin size\n",
      "and displaying it."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#!/usr/bin/python\n",
      "import numpy as np\n",
      "import matplotlib as ml\n",
      "import matplotlib.pyplot as plt\n",
      "\n",
      "\n",
      "# First we define the bin edges\n",
      "xedges = [0, 1, 1.5, 3, 5]\n",
      "yedges = [0, 2, 3, 4, 6]\n",
      "\n",
      "# Next we create a histogram H with random bin content\n",
      "x = np.random.normal(3, 1, 100)\n",
      "y = np.random.normal(1, 1, 100)\n",
      "H, xedges, yedges = np.histogram2d(y, x, bins=(xedges, yedges))\n",
      "\n",
      "# Or we fill the histogram H with a determined bin content\n",
      "H = np.ones((4, 4)).cumsum().reshape(4, 4)\n",
      "print H[::-1]  # This shows the bin content in the order as plotted\n",
      "\n",
      "ml.rcParams['image.cmap'] = 'gist_heat'\n",
      "\n",
      "\n",
      "fig = plt.figure(figsize=(6, 3.2))\n",
      "\n",
      "# pcolormesh is useful for displaying exact bin edges\n",
      "ax = fig.add_subplot(131)\n",
      "ax.set_title('pcolormesh:\\nexact bin edges')\n",
      "X, Y = np.meshgrid(xedges, yedges)\n",
      "plt.pcolormesh(X, Y, H)\n",
      "ax.set_aspect('equal')\n",
      "\n",
      "\n",
      "# NonUniformImage can be used for interpolation\n",
      "ax = fig.add_subplot(132)\n",
      "ax.set_title('NonUniformImage:\\ninterpolated')\n",
      "im = ml.image.NonUniformImage(ax, interpolation='bilinear')\n",
      "xcenters = xedges[:-1] + 0.5 * (xedges[1:] - xedges[:-1])\n",
      "ycenters = yedges[:-1] + 0.5 * (yedges[1:] - yedges[:-1])\n",
      "im.set_data(xcenters, ycenters, H)\n",
      "ax.images.append(im)\n",
      "ax.set_xlim(xedges[0], xedges[-1])\n",
      "ax.set_ylim(yedges[0], yedges[-1])\n",
      "ax.set_aspect('equal')\n",
      "\n",
      "# Imshow is useful for a simple equidistant representation of bin content\n",
      "ax = fig.add_subplot(133)\n",
      "ax.set_title('imshow:\\nequitdistant')\n",
      "im = plt.imshow(H, interpolation='nearest', origin='low',\n",
      "                extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])\n",
      "\n",
      "\n",
      "# Finally we add a color bar\n",
      "cax = fig.add_axes([0.12, 0.1, 0.78, 0.4])\n",
      "cax.get_xaxis().set_visible(False)\n",
      "cax.get_yaxis().set_visible(False)\n",
      "cax.patch.set_alpha(0)\n",
      "cax.set_frame_on(False)\n",
      "plt.colorbar(orientation='horizontal', ax=cax)\n",
      "plt.tight_layout()\n",
      "plt.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[[ 13.  14.  15.  16.]\n",
        " [  9.  10.  11.  12.]\n",
        " [  5.   6.   7.   8.]\n",
        " [  1.   2.   3.   4.]]\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADXCAYAAABPscVgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXncJVV557+nXvYd2VsBaWRRQASaxZgZ230QoiQqEScq\nLtFxjFvUGE2iL+q4xnXGLRlGowYdlzHIRxg1Smsc3EBBIkEQQUGCS6uIkAj0rfnjOVV1bt1a7711\nb9Xbv+/nU11Vp06dOu+tp8+vnrOCEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCJGysuwM9IBd\ngScBuwA/WsDzfh+4D3DNAp4lhOg3ewHPBq4Hbl9yXnpHtOwM9IDbgGOBoxb0vHXAgxb0rK2B04Hf\nAI/w53sC/xv4C5p9gN0XKxzeAOyA/Z94mU/jHiX3vAu4vz8+EngJ8GngwPbZH+MMYIR9xIjhcSBw\nXst7fgk8Edh9/tkRa4VXYV8xi+CpwOsX9Kythc8ANwL7+POnAQe3uP9i4D8G54f4NMrYLjh+B/Co\nXNgsjOaUjlgO09jBxcAR887IWmCbZWdgzjwH+5K+GjgNOAt4CHAH8B+Ap2PVef8OnAh8Ffvyzafx\nY+BhwEeAnwKfBP4ncDJwA1b43QBsAP7WP2cT8B7sK3gX4PeAlwN7Yx7a0cBb/TOOAF6LeVIPAU4A\nXgT80Rx+g62RbwD/D/g74NFYIe8wz+ZqzMt6K7Az8D7gXOCZwB8DlxekN/Lb3sD/AT4BPBI4H/gg\n5uHciNnGsVjVzE3AjsBxmOe2H/BG7GNkBDwQeDEmaH+P2cl7gfU+7Yfk8nAK8M6KuL/j09zT5+ub\nwGuA7/m/+2LMpp7p03sY8BT/+5yC2aaYL/fFyp3bsff0DeBUzA4eC2zGfvcXANf6a8/z9/4B9j4v\nxN51vpz6MnClT//h2Ps8A3gp9v7vg95r73kwJiZgX8Dvx6rUAM7G6nvP9+fbA9cB25J5UMdgIgNW\nwFzpj3/ozx3mAb3Jh1+CVQ0eDvwjViX0ceAPgXOAJwDPxwxyB2APf38iVN/y6UbAvjP95Vs3r/L7\nC4E/xX7j5wF/7sNPxLwsgJ/5/fOD63kP6mCfRnLtaKxK7/9i7+otZB73+7HCCKwQcf74M/655wTP\nARM1gGcBf+2PLwHu6Y9HDeLeCyvcDscKvr/0136AfcE/D/hPmDC/AbPHdwH389f3RHTBnsC/YuXQ\nx33YeZiobAd834d9FhOUpGy6GLOvxMbKyqn/hpUpewH/4q8nnv6afK9rzYNywJ3++FvYV8mt/vwD\nwElkf/NvsQJgv+D+I8kKiJ9ggoIP+yUQ+/MtQRp3+WfujBndDVj7RcLOmLE+BPuCTe5L9tv79H+K\nmJUnA1/HhOpGsvd0JVkVyt1+fyfZ+72D8fbYKIiXxI3I3tWvyWwh5L5B+Hf8MxPbSUjydCeZrf4W\ns5M8ZXF3wr7O/8DHSdraXox5hTdgBd2fAf+EiWVok3ciuiB8z4n95MsIgFdjIvXXZB/E/05mY+uZ\nLKf2xWoI3oCJ1eXYR1XSsSK0kTXDWu4ksR/2lZlUmx2LNYYfTvZ33w3cTPbV+8/A8f54W+yLNMHl\n9vlwsGqeMzBD3Ab7gj0Mq1b5DlaA5nF+kwc1Pdv6/WbsI+DZWOeXDT78HsC3C+5L3l0iJgnHkXnP\nYbzw3BUcX4eJFNjX7BU1+c6n2zSuw7zwKzAhTq4di3lKF/jzG8k+ivbHqqi3ZQ1+afeY0D4SbsfK\nmWdjvYjJxfk+xeXUNZgt744J27vJagbW5HtdiwJ1GFY98zvAA7DqkX/CGr5/BqwCf+XjnIO1G9wf\nq6q7DmtzeAFWd/8CzCvaE2sviny8e2MCuA9WLXiUP78bc+kvBf4Gaxc5HXiGv/YlrPA7AnPv1/n7\njwPePv+fYqvgUdhHwXp/fgnwCuAibNjA07EqrpdgBfiuwEH++DDM+3gDVqf/eszr2BsTrb2w6rRj\nfPz9/b1H+rB9yOr+dwD+C/BczLP5NtbOcLS/dye/39GneZi/9wC/PcDfF2NtXHVxb8LaMQ/1ed8b\nE8dvYF/XL8equ3f0Yc/FvMvTsF6KYv6chNnXsdh72g+ruj0Gs4NdsXLo1Vh58nnMYzqQrIovqfZb\nZbycSjzzD2K2/WWsbTTxoPReB8BGrGODEFsbRwP/1R87TOyEGDRrrQ3qeMy7WYe5xEJsLWyDVSEf\nD1xF1sguhBBCCCFEd2yHdar43Q7SPgSb3UBsvWyHdRM+fYY0kuq7R80lR6JPPBI4c9mZ6BNrsZNE\nGw5g/De4E2uAzk979EBssN0s3ISN0RH9om56mnvN8Vl3Yo3mVVNd1T0vxj52TplXpsTCeBnWmQGs\np+8eueu7Yj2PAf6B8l55bW0yX84NhkFmek5sC3yIrItywm0Fcb9KNhhyWpKxEKJf3IgN4i7ikVjP\nvHnyy4prTZ+nSUWHyVuwbuEO6ya+X+56+F7PpNhW7gn89xbPLCvnBsEQO0nsCzwG6/K7DfBmbBqi\nGzBx+QY2q8MrselfHod1Nd8H6767C/alci7WrfPx2Bd0OPDygVhhsb2/5zi//S9s/Mld/touZDMO\nJOSnljkM+yq6kWzMw+HYlEo/w0aCPxHr7nwfrCfi+VjX+OcDt2CD+D7c6lcSTUmmp9kB66p+M/b+\nH4ZNKXM41k14R8bfz0+wqYg+gxUae2Hj7NZjBdATsNkc9sQ67mzGhh6E5G206nmfwbrKX4MN0Pze\nvH4A0Zp8GXSZD9sJG2v2Amy4w2Ow2USegdnTqdjA7a9h05udik2r9iTgF2Se9W6Y/XwVq3kJy4HN\nWA3PQ7FhFE/Gyr3vYUMjLsKGTTzD76+ivJzrPUP0oP4MG119Lfaf+XbgTzBBuQkTJ7CXdhFWQKzD\nCoNzMYH5PvZyb8dmeci/tMuxQuM32Iu9E/vKvgv4OTaA97lkU9wknI4VKrdhBneYf97/AD6GzVgA\nZlybgdf5vFyGzQJwN2ZkG7BC7Rhs9PgXW/w+oh23YL/9jdgX619iNrM/8F3sP/iVTL6fy7Cu3W/E\nbOEO4CvYl+++2Mwhf4ENe3g91gX8gNyz8zZa9rwTMVHaHZs78ivz/AFEa8Iy6CjsY/Nc7CPiUOz/\n9s1YufJNf88I+3j5XX/9p9iMJ/tiYzY/gY2LAiuXTsWqn+/NeDlwlb//i5jdfNbf91hsSrYdsbGc\nbwnCysq53jNED+p+mNjcQTZ9y2bsq+SgIN7l2AtKpoI5ChMYMJe3ikRIvop9HV+Su15WVXc/JqeW\nOZpsaqNk6poPYAXbo4EX+rB1mIiFJOL1RNRtvivCapRwOqHt/XEywr/o/dzO5JRIYO9sb8aX6/gX\nrPAKydto1fNeQjaP4BbEMgnLoOvIqv+LZqIPZ4j4FePVeg7zpH6Ru38L9vESYx8oYTlwR3D/P2O1\nNDcxvrRMMu3R9gycIXpQYZvBg7CqlcOwuccehzUg7ozNc3U+JkoO+Deynk8n+f2I4jWDEqO6ByZO\n+WlmyqaoyU8tcwrmlicFU/J7H4V99VxIVlWzFyZmYDMj3BcbTf5CbCS5WDwjsneWfz9FJHaxN/bl\nvCNZQ/hO2MzqLjjP22jV836CeVJgNttmmiQxX8IyaCdsBYVtGP/g3+Kv7RCEhWVH8q5vIZuSK2Ky\nrMmXA1vIbOTl2AfWNQX3hZSVc71niAL1RmxCzM9js05vwb5gLgI+irVH7YKJ1BuwiT2fjk1/83Z/\nX9Jg+FXsS2jXLHm+iQ12fAJmiJdggpZMc3NfsumO9iCbew0mp5b5GjYd/of8+Q8xdz5pO/sWNv3R\nwVi1wacwV/xGzPV/M+bmf2qqX0o04SSszv+xWJXxOuwj537YXHePxKplkvfzCez9JNPahD0+T8cK\nri9jbaLPwmzzD7H6/1uxwugw7P9e3karnvdxTPjehQnXPowXfmJxhGXQgdj/74uwNqeEC7BVDzZg\nZdS+WFvQEdh7/xpWjXstVi58CKvG3QH7MF6PeVf5cuAWf/9TsfarP8Xs5Wh//57+Ocdi5cqOFJdz\na4oN2JpHs64YKoy3krnfezK5FtBaYGuzmfejsUmzsBbs5d6YGIg50aQN6qlYw/9fdZyXrYntsXEO\nV2ATy35iudmZO1ubzeyBVeNuwBqv76qOLnKsFXvZiHk8e2Ht4qJjDqJ4xVEhypDNiDbIXkQpdW1Q\nZ2FfAq/AujOur44uhGxGtEL2Iqbmvdg4ILDxHfmBhkLkkc2INsheRCl1HtStwfH3sDFBYxy693Yx\n1l9f29rbvk97Km1G9rJ2t0MPPTSmPSpjtuKtzmbqOkl8AXgw1ohfuIT1dT+/k/h9J9QkMyXrH87q\nB7/C6lMaTi6+/uGtkl99xwdZfcFT6iNOyeoHv8Lq6mp36a+udpq+cy4/sLQJlTYzlb24FYi2Cbb8\n+TZpnNWPXcnqk04siRP5eCvjexdNhkUrhfFX3/1JVv/kicXxcf6eZB/VhAXhPmz1ze9i9WXPb3h/\nszSTsNVzXsPqOd0NqXNuqqFZSy1jVi+4mdXfW1d8sWV5Uph+m/JriufOtQwreO4CypjK63Ue1Oew\nHmdPxuYne9N8siXWMLIZ0QbZiyilSTfzl3SeC7HWkM2INsheRCG9n0li47EH1UeaNu2Tj+0sbYCN\nGzcOOv0hsvHo/btN/8T8UmFzTv9BJ9VHmjbtjQ/uLO2hsvHwbidX6LL8guGXYXXMYz6vuMs2qE7j\nd03f8tMSXz887znf2ttLizao6jizt0FVxp9je1EXbVBZ3G7oyF6gyzKmimX9/92KnltnM733oIQQ\nQmydSKCEEEL0EgmUEEKIXiKBEkII0UskUEIIIXqJBEoIIUQvkUAJIYToJRIoIYQQvUQCJYQQopdI\noIQQQvQSCZQQQoheIoESQgjRSyRQQgghesk0ArXL3HMh1jKyF9EG2YtIaSpQrwSuBb6LDEjUI3sR\nbZC9iEKarKi7M7ADcDTw226zI9YAshfRBtmLKKWJB3U4cBzwY+Bp3WZHrAFkL6INshdRShMP6tvA\nqcCRwBeAi4BbwgirF9ycHm88fFc2HtHtMsqiGzZt2sSmTZtmTabWXl51/o/T4wcftkv9sttRBKMR\nRMnmguMt/tzhRtmxbeE5fuVbYBSDiyFK9lEuzKftVux8FIaNbPXc0WgszEVbGqxsW7UqrgPyq98m\n9xeF2T52ka1K2uo582HTl77Mpi99edZkau0FVMasFdqWMW2t9R3AecDXgzAt+V5G3/LTkjks4V1o\nL3e/4wHtUkmXb18Bl1/SPdu7ujhuxcSoYEl3Fy7jPrake3F8cvFdej0RmmJBqRWkontr0ywSLmd/\nU9G9HeF23APmby+gJd/X7HPrypgmHtT2ZHXD2wNXzZ4tsYaptZfR3aN2KUYRRCOc3xOPYBR6SAX7\n2MGIzHuKHLjYC0niKWUeUuyiCY/KJd6SiwOPauS9p5XAo/IeXmNBmSLeRHh1mq7q3n6h8kWU0kSg\nXgscDHwa+DBwW6c5EkOn1l7iu+N2KUYmArGv3nNJNV/sfNVfXqTIhGnkUkeFaIV4FPsqukCMXGzi\nl1blrYAbESfxohFutDJ2zYQqygTK5QSqkfg0Ea7Z70+rAemlQKl8EaU0EaiXdp4LsZaotZe2HlTq\nOfn2pDga4cJ2ppErEKctmTDF5nSNeU1uBRfFMDIPKfZCRRThRrHdGGWCFXshcqORvxbsR6FA1YnU\njGGNRGo8zOXD+oXKF1FKE4ESYq7EW9p5ULGv0jNRMlGIIzcuUjEFQgXj3lSMc3FabTcuSivpcZyG\nhVV5USpULu0kEQrVFoq9nhJvqDCsTGSahJfELXyOEMNAAiUWTvsqPmsziuPYRCP1pEKRCoWK1HuK\nU5GKcW6FOOmVF0UwWvGCFYpSUm234tulfPVe2s5kVY3WqSIKhKqqai4f3lZQmopUQ5ETYiBIoMTC\nad9JIhOiOHK42AXeUriRbSPGzl1EKkJp9V7iRY2iQKiinPcUea8pSs/HRSnpJFEjRoXiUSdcdSLV\nRvgkUGJ4SKDEwpnGgwrbnVLPaZQTpbQ6z5kgeW8q86Ria1+KYuKRqZZLq/tiL1RRKlQuaV+KVohH\nES7tEBERp97WFgi7mJcKRxPxaRqWf1bTMAmUGBYSKLFw2neSSIQpznrweY8pjsGNsvP8lgmV9dSL\n004SMS6KrVefi7yHFApP5NuovFDlriVCNeZR5QWpSCQqBaXI66kSrprwiTAvUkIMBAmUWDjtO0mE\nbU8EXhSZWAVtT9kWB0KViFE8LkaJxzThPSXVdjkxSkXJBWFbbF8pPHWCUidcNcLT6n4hhoEESiyc\naTyoOHK4UdJ7b1ys8m1PYZVeJlQrgdc0Sr2mtM0p8ZhGybGrFq8kzpiINfV6WopPZVidIBWECTEQ\nJFBi4Uw3UNcL0cQMEQVbHHuhiomjYO9GQbWd96iiEW5ULDyFYjThWbmCThJNBalJ1d4saZaEDZDL\nXnbZwp95wPrFPxNg3fo3LuW5rF/OY6uQQImF01agkranxHuKI3CxI/beUlm1XiJUSTf1cAqjTKiy\nXnqZp+RScYpHmSdF7loqSsm1rgRlIozZ7hdiIEigxMJpX8VHULVHzlsiEKo4J1Sx7yRhvffiKBCn\nkRe9kc20EEdB1d4oE6Osc4QLOkm4McFKPaq8eMwkUjSMV5dmlp/YOVz/ZpIQohQJlFg4rTtJjOJU\nnOIo9JpcybinOLclk8Jmsz+E7UyxH/dknpHL9oFHxdg+7CQR7GsFhfYe0lw8KYuXTnkkxECQQImF\n09qDWnEQj8xTWnEw8tV8K87PCuG3OE7Prd0pPE48pKTNaTRevefcWJVeJl5Je5Qbj5eLb0JVIkiF\nXg/F4Tmvp5M0hRgIEiixcFp3khhZtZyLrD7PxAHvNUWF1X5jwpWIVF6URsE+reZzaZVeVpXnMq8p\n9Z4KroUCMCESBWFt4s4zTSEGggRKLJz2nSRGuc4QkV8TKqzyy1frRbg46amXbC5XzReKUugpObKe\ne0GVn/eaTJRc0EnC4hd7OFR7R4WCQnB/kzSLvK6KNIUYCBIosXCmW24jToUqG6BL0Esv8aTGBWms\nO3laNTci9m1ILhqlopQIESOXq8obF6NJoUoEiulEpjJuGC8vPFVpVsQVYiA0FagTgGcCz+kwL2Jt\nUWozbTtJpG1OY2OfXDrGiTgKqvSicY8pqd7zixuOe03ZMh7ZXHsuECUvPPmwsWq+YF/o4TAmErGL\nvB5ViVT5/cXCVXJvVZr9Q2WMmKCJQO0BbAR26DYrYg1RaTPTeFAuTiZuTXrzuXFPKnKQdid3YwIV\nek8kM1KkVXkumDXC+U4PrkCoXNDmFIhSXqigVFBsZVsC4SiP20yQisIaxO0fKmNEIU0E6nHAJ4Gj\nO86LWDtU2kzrThIryYDbEXHsbPHaVHyiYO/DUo8qFKrMeyKp0vPiYtV7fjn5RJxKhGpS2MaFysYa\nUSgSrlJ4GBcQl7s2IT5VYbln54Wzf6iMEYXUCdTjgU8Buy0gL2JtUGszrT0oL0i2eS9qbAbzUIj8\nNEZpdVwSPu49JWKUxAvFyK7RwKMa38fOpbpTJR7mScUlYlQkNEwhXGVxW/30i0BljCilTqDOBv4z\nsBNwJPAi4G35SKsX3Jwebzx8VzYesev8cigWxqZNm9i0adOsyZxNjc284/p/S49P3m0bTt69xgyj\nEaxEqReVzWDuAk8pGhOqdKXdODZPKTl3fq2owHsiFKrIWe/AQMTGhYrMe0rSTdLKiUJMIFgVntSk\n10WNIE2mWSlI+TTnxKarf86mqzfPmszZNChj3peZDCdsAxu2nfWxYhls+pFtTWlqsQcDq8DTCq7F\nl+7Z/IFtOKDl5IXr+jbZYd/y0xJnc1ZOW6qV2Ux8zUntPpadc4EHVbJVxol8HFJRcl6oTFgKwpJz\nL0quLizyP1WlyBSFTRF3KpEKw7rBPfNz/oFTUV3G7DFlqjPQtvyZF0srx5bwXPcm25VdVzdzsXCm\nWW7DxeaxhMITBVV3mUeVnBNcGwXek00ym1TNJWKTelkjsnYlR+YpTXhP5DpJEAgKBcJTFFYlNHMK\nK3q+EAOhqUD9kOIvGyHKKLWZ9sttJFscCJBjlAoV40JVKFKZkIyJ0liYL8ADEXNBmHWSIK0WTEUp\nwgsVLUTKBzQRlCpPaMJjyt1XFN5PVMaICeRBiYXT1oMa95TiCU9plHpT5Lyp7NwWPSQTkqAjBF6M\n4qj8GhFBJ4ksbGwfigJMITL58CnvL7o3vF+IgSCBEgunrQc18gNys2o93zEiJhWqeMxbIt07L2bp\nQN+chxSKjHV6IBCxpLMEvqcfY15WKoBJWqEYlAjFeIcIKjwp/8eXiUytGFbkSYiBIIESC6f9TBLZ\nmKbRWJUeqVDFIzcmTOY14QftJmJGJkap8GRh5kUxJkBZzz3Ie1RpmBezavHwlyfCKjymxiLV7Nk9\nr+ITYgIJlFg403SSiEZxKjy28vq4IKXVd/mwMF4iJIGHRE6oXCo8k9cmhSqXbmPxSP6wBmJUGTcX\nXhkWhAsxECRQYuG07yQRmyil454IPCkC0SJte3I5gXKh4BQKFTnhCcLS+A3SqBUUmPSawngFAtVI\nfCjxmgruFWIgSKDEwpmukwSMotiLEGm7UrgOVJx6S7Z2YdJGlIkVJSKTHOfEqOpazstySVhrQcqH\nlYhMG0ErfY4ESgwLCZRYOO07ScSpt5R6SpHDr6IRCNTksYt9h4jkWk5kxqr0JjyqyfiTYYHYNRaK\nqrAKMZs6zSRMAiWGhQRKLJz2nSRCYUqO40yIvLeUilIgUJlQUSgycYnwuEpRKgiLfF7nKSgzC1JF\nmkIMAAmUWDh3tW2CciYwzi/zFO7dyGtFVBBGoCUx2aK3fvLzfJhLwlywT+I7/KS1ueuxw7l4vIqP\n4Ljg3DWI0ySdiXM/92CjdIUYABIosXDa9pFIBSIUJl+9l4hKNArEKBoXqaSpKK1BC4+TtENxKjsu\nEquRjc9y1AhDcN5IoFqcZ+nFze8VYgBIoMTCubtl/FSYwuNR4DWNAo8o9KhG487FhMfkxs8nhCrv\nSeXOo1CkmgiLP64VqIJrbdKfuKconhADQAIlFk7rKj7GvSgXB2F5LyoUJhdU9bmsI16h4OSFywWi\nF8YPq/mS8+B6K+GoiFMoZCXHrkGciecKMQAkUGLhtB4GVSRMfu/IeVGhSIVVfTlBikKRKfKUcuIU\nhdfyIhWKEwUClOwbCpQrua+pINUKlhADQQIlFs5UVXy5vSPnMSViFHhJUW5fJEhjwhNNXs9vafyc\n5+TCXnxUi1SZAJV6TE3Ta3qPEANBAiUWTutOEgReFEF7VHCcihQ54XLB/XVb3DBeiWAVCkRyXuTh\nBNcmwpK4JQJTJj5FYjURJsRAkECJhTN1GxS+nE2q8whEKBCktKrP5TyqIpGhgfg02SgWjSKBqRSR\nunur0iu7Nx8mxEBoIlC7A+cARwGfA97caY7E0Km1l7ZVfGPVehR4UZBV74VVfYnQkBOe3HmdaDUV\ntiKxaCI8TURnmnRK0+0fKmNEIU0Eaj3wQsy2ZTyijlp7maqKL7cPvaix60HbUH7h2zJvqVSw2sRP\nMkp74Zg4D46biFXheUX6PURljCikiUB92+8fBPxth3kRa4Nae5lFoCZEqsDLScOiXDxqBIgCb6nm\nnlCsksxWCggVcXPXCuOWXEt3dSLYT1TGiEKatkEdApwNnAKcD/y2qwyJNUGlvUzTi69MpCrD8gJG\nidCEx3mhKrhWdByFApD3qILjvNAsPF5/hUpljJigrbmeC7wHuDQIi48PTtb5bR60TeeAOT13Xszr\nd1gUV/ot4SO2m6VIK7SXU1eyk8MiODyiklAsSj0mir2oMnEqFKCK42YC57CZa0u8GR/mnEvnzCsT\nlLL7C4+LRKrgeCIvM/KNX8M3f52dv/vm8ElTs9AypopllSfLKjcW8ffmy5iP2q7UZtr24vsVcF0+\ncEPLREQ/OcZvCR+ZPclCe3nUyvh5XZWfIxjTlO8cEY5nKgorEahwH1VcK4xfFA97cCPBIRAnH97l\ncZnAzcoJO9qW4AVqVlTGrGHyZcxHa+I3EahV4EDgk8CFwC+nypnYWlilxl6mHqhLIEJJeJkw5cY0\nTXSUKNhPeFU1+3yaltkSYUj/yY4LhSW4r1Ls8ukXHBfd09MqvlVUxogCmgqUEE1ZrYsw1TgoikWq\nUphiJqsHKRCborCGojaWhl/uol5MHBAXezu1945fm+beHrK67AyIfqKBumLhTD0XH7lxUK4kLB4X\no/SYCrEKj6eN7xdiLPKcxj2koJ2qKH4Q1laISj2x3HOEGAISKLFwZqniK1qIMBUwVyBScbFAjXlJ\nYXhF3PSZJSIFkyIydl4S1khccvdWPaNJekIMAQmUWDgzz8VHA5Ei50XBpOjkz9142nVilRcsnMPF\n4x0gCr0e34uvTFDqwqvSbxouxBCQQImFM7c2qNA7Cj0mAi8qOaZCpIrCqsSqNI1c1V24HxOJ4iq+\nwvvqrpeJUsV1IYaCBEosnLnMxUdOmAi6oAde1Jgnlb+3iVBRUK1XEZ9wXyc8yXGdyEwZryyOEENB\nAiUWzlzm4iMnUgReT17MysQlTKcmzkS1XkmcJL91+zbC00a0GgmYEANBAiUWztzm4iMnXGVelqsQ\nldxWJT518cntpxWoacWqzTUhhoAESiyc1r34KPGYqBCr8DhuLlC1QlURP8lrft/HMCGGgARKLJwt\nLeMnBWtMJgZxgzBXEtZEbKaJn+Q1zHPnYfkegQ3TEGIISKDEwplGoKYRpbLrdV5TU3HKx4dxEegy\nLL0WT/YcdEDa5b0kDSGGgARKLJxpBGoWUarziGYVJufFoDMRmibM56csXSGGgARKLJy2AjWrKJUJ\nz8zClGwFYrAQEWoalhNQIYaCBEosnLYCNYsoFXlPcxOmko2S/dLCctWAQgwFCZRYONMK1DSiFIpK\n18K0VBFqGCbEkJBAiYUzahl/FlFq2g41Dw+L3H6ZIlQXX4ghIIESC0e9+BYjQlVhQgyBqOb6bsB5\n2BLM7++2d9mSAAAKkElEQVQ+O2INUGszW2bYRjVhddeLro1q4jSNv4iweaYx721KVMaIUuo8qEcA\nT8Ps/DLgROCbXWdKDJpam5l3L75pvadpB+RWxaHguCqsbfx5hPUMlTGilDqB+jRwlz++CtjcbXbE\nGqDWZubRSUK9+NZM9Z7KGFFKnUAlhrMDcBPwg26zI9YAtTYzrUDNOgZKvfh6icoYUUrTThJnAq8s\nu/g388nLBOtaxj+gk1xMT9v8L5ufM9fP11KbuS443gPYsyahaXvxlXlc8xSmtrOZL1OYwmvz4PuM\nv8sZqSxjLg2O1zG8/1vCuNJvTWkiUKcBFwJ3AAcCN06RLzEA9vZbwjXTJ1VpMwflItd5VG09paqw\neXpMedGj4LirsFnTmAeH+C3hc9MnVVvGbJg+bdEjjvFbwkdr4tcJ1FnAG4FbgRXgncB7p86d2Bqo\ntZl5z8XXpm2qygNq6zEVxYdqYViqMAUTyPYIlTGilDqB+ojfhGhKrc2oF1+za3MP6584gcoYUYEG\n6oqF03rMTLjmkT+OgmP14msXJsRQkECJhdN6qiMvTlFwHAMjL1RNO0zkvawmotQmPvRHhOrChBgC\nEiixcLSibrdhTeILMQQkUGLhaC6+xYhQVZgQQ0ACJRbO1tyLL/LtZnXxuhImCZQYEhIosXDm0Ytv\nHt5TF4N3KThO9pFz3J1bGr4rEaoKE2IoSKDEwpmlF98s0x61FZuphMw5RjkRSvajGTyneYYJMRQk\nUGLhtJ6LL+zFRztRWuRcfIk4QbVAzFrNN0vYUOlqOrUqljV12rKmcerbVHEggRJLYJoVdSPnWgtV\nnSc1N2Ei85BCMSjyptrEI7dvI0J18YUYAhIosXCm6iThC/A23lObXnzz6CwB4yIQelNVYtE03jyE\nSQIlhoQESiycLnvxtfWe5l3tR24/77B5pSHEEJBAiYWjufiaXesqTIihIIESC2faBQun8aQ0F5+8\nJzFcJFBi4UzTSWJaUerbXHwunPi2Il7XYUIMAQmUWDiLmouv7VRHruC+Nt5VktcwzxNhS+xeLoES\nQ6ONQB0DfJf2H8Bi66TUXhY1F19RWFOxmUbIKDjuKmzWNHqKyhgxRlOBOgX4R+AewJ3dZUesESrt\nZd69+Np4UvMSprL45PbLFKGqdHuIyhgxQVOB+hrwsy4zItYUlfYy715801bvddFZgoLjqrC28ecR\n1lNUxogJ1AYlFs60vfjazFpe5j113Vmiz8LUc4ESYgIJlFg40/bim7W7+by9pXx86I8IDdSLEmIM\nCZRI+TmwedmZEINB9iLa0tZm2gqUPsDWMHv7LeGa2ZOUvaxh8vZy7XySlc2sYdraTFRzPWEDsA/w\niGkyJbY6ZC+iLbIZMUFTD+pSYJcuMyLWFLIX0RbZjJigqQclhBBCLBQJlBBCiF4igRJCCNFLJFBC\nCCF6iQRKCCFEL5FACSGE6CUSKCGEEL1EAiWEEKKXSKCEEEL0EgmUEEKIXiKBEkII0UskUEIIIXqJ\nBEoIIUQvkUAJIYToJRIoIYQQvaT3AvXbDtO+rcO0wZY3HnL6Q+SujtP/Tcfp/6rDtLU8++LpsvyC\n4ZdhddQJ1DbAq4EzgJezhOWYhyxQXRcIPS1wlmozd3ec/u0dp39rh2nLXhbPnR2nP/QyrI46gfpj\n4CbgH4BfAE/oPEdi6MhmRBtkL6KUOoE6GbjcH18BnNZtdsQaQDYj2iB7EaVsU3N9fzIv8jfAfgVx\nrgMOnWemEm4OHtwmfhv+dYp72nDNsNO/bop76mymtb3Efhs1jN91vf/POk7/Rx2mfW2HadONvSTp\ndlLGVDGvsqFtu2Xb53Zdhi3TZuoEajOwqz/eheI2s/tMkSmxdqmzGdmLCFEZI0qpq+L7LHCsP76/\nPxeiCtmMaIPsRZSyUnP9O1jvmr2Bw4B3dp4jMXRkM6INshcxWI5hAGO1tgJ2WXYGWiCbWT6yF9GG\nTuyl6/ELp2Dti9vNOV2A3YDzsAa693eQ/u7A24HPAy/tIP2EE4D3dJT2K7H20e9iDdmzsojxLrKZ\namQv48heqhmSvUzwHOBZ/vjZwJkdPON6ujGexwHbA9tiVQwnzjn94/zeYQbUBXsAL6Yb498ZeB32\nG82LRdgLyGbKkL0UI3spZmj2MsEHgJP88SnA33XwjK6MZ9vg+KPA+inSiLVp06ZtjtsvaM/v0o14\nPwO4N90I1HHARViPzadVRazrZl5Fk/ELfSWZsm0HbBT7D6ZJJMI+X/L7omvJcdU5ubAme1qkH55T\nEFa3b/J3VeWxLE5RGm3vCe9r8/vl/642v0mj395BFIHzG9h5EtZ0n9zngvB8nPx94T1lcYuug39m\nm4028Vcg2sY2yI6bbtPc0/dnAc65PWnHIcDZmINwPvMbAvh44FNYNWUXfBs4FTgS+AImVrcURYyK\nAhvSZPxC3zkTqwsVQoihcT3wTODrWGePeXE2cC7wPuChwIvmmHbI1cAngIPLIswiUIsav9DV5JGn\nARcCdwAHdvQMIYToml8x3SweZZwO/D7WBvhF4G1zTBvG2562B64qiziLQH0IOAib3PFewIdnSKuI\nDcA+wCPmnC7AWVjvlIuxH0fzfwkhhsQq5uU8GvvQ/uVSc9OO1wIfA/4I043SSdnX1NT2Cyaepa1G\nbVDVabS9R21QaoNaA21QiUkJzywelBBCCNEZEighhBC9RAIlhBCil0ighBBC9BIJVA/oeoG9aejj\noLbrl52BHFcuOwMFXPLrZedgkk0/XHYOJtl0eQ8zJSaQQPUACVQzblh2BnL0UqBKO+wuj00/WnYO\nJtl0hQRqCEighBBC9BIJlBBCiF6iQWHTEy87A0KINcVtdDdBqxBCCCGEEEIIIYQQQgghitmAzUKv\npVEmOYb+dXhSnpqRz5PsXPSG3YDzsLVculhaeVpOwJYj6QtPBV6z7EzkOAB4KbZuzluBbZeUj1Ow\nFa23w1bIfjVwBvByltcJKsxTX2w8zFPCsu08n6c+2rnYinkctmDXtsB3gBOXmx0A9gBeTH8E8yDg\n8mVnooAXA4/xx28Bjl9iXq7H7Og52CJzAM/GVoxeFkme+mTj15OJQV/sPMlTX+18qfTN3d3a+DQ2\nkcRd2MKJm5ebHcAKlE8uOxMBZ2G/yyuwVZvXLzc7KV8CXgk8GHt/fShcTibLxxUsfyHOmH7aOPTL\nzh39tfOlIoFaLnf5/Q7ATcAPlpgXgMcDn1pyHvIcglXDvA5bQfTPl5udlEuBC4C/B64GRsvNDgD7\nk61O+htgvyXmJaFvNu6QnQ8GCVQ/OBP7Gl82Z2P/Od4HPBR40VJzY9waHH8PuOeyMpJjI/BrrGrv\nhcD9l5obYzOwqz/ehX5NqdgXGwfZ+WCQQC2f04ALgTtYfs+d07FG/2cBXwTettzsAPAF4Dh/vCdW\nddUHjgeuBX6KtWP0oUrms8Cx/vj+/nyZJJ00+mTjIDsfDBKo5XIW5tZfjNXPL7vNoI98DmtkfzLw\nQOBNy81Oyoexr+8zsAb3i5aUjw3APsAjgA9hje1PAO7l87isPO3t8/RE+mHj4e/UF8I89dXOhRBC\nCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEPj/wOrJ4cSt2FzegAAAABJRU5ErkJg\ngg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7fe551ab4310>"
       ]
      }
     ],
     "prompt_number": 2
    }
   ],
   "metadata": {}
  }
 ]
}